//package com.kfh.ybracelet.ui;
//
//import android.app.ProgressDialog;
//import android.content.ContentResolver;
//import android.content.Intent;
//import android.database.Cursor;
//import android.net.Uri;
//import android.os.Bundle;
//import android.os.Environment;
//import android.os.Handler;
//import android.provider.MediaStore;
//import android.util.DisplayMetrics;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.view.ViewGroup.LayoutParams;
//import android.view.WindowManager;
//import android.widget.GridView;
//import android.widget.PopupWindow.OnDismissListener;
//import android.widget.RelativeLayout;
//import android.widget.TextView;
//import android.widget.Toast;
//
//import com.kfh.ybracelet.R;
//import com.kfh.ybracelet.adapter.MyAdapter;
//import com.kfh.ybracelet.base.BaseActivity;
//import com.kfh.ybracelet.bean.ImageFloder;
//import com.kfh.ybracelet.widget.ListImageDirPopupWindow;
//
//import java.io.File;
//import java.io.FilenameFilter;
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.Collections;
//import java.util.Comparator;
//import java.util.HashSet;
//import java.util.List;
//
///**
// * Created by Aaron on 2015/7/23.
// */
//public class ChoosePhotoActivity extends BaseActivity implements ListImageDirPopupWindow.OnImageDirSelected {
//
//    private ProgressDialog mProgressDialog;
//    /*相册选择的code*/
//    private static final int PHOTO_ALBUM_CODE = 101;
//    /**
//     * 存储文件夹中的图片数量
//     */
//    private int mPicsSize;
//    private String path;
//    /**
//     * 图片数量最多的文件夹
//     */
//    private File mImgDir;
//    /**
//     * 所有的图片
//     */
//    private List<String> mImgs = new ArrayList<String>();
//
//    private GridView mGirdView;
//    private MyAdapter mAdapter;
//    /**
//     * 临时的辅助类，用于防止同一个文件夹的多次扫描
//     */
//    private HashSet<String> mCacheDirPaths = new HashSet<String>();
//
//    /**
//     * 扫描拿到所有的图片文件夹
//     */
//    private List<ImageFloder> mImageFloders = new ArrayList<ImageFloder>();
//
//    private RelativeLayout mBottomLy;
//
//    private TextView mChooseDir;
//    private TextView mImageCount;
//    int totalCount = 0;
//
//    private int mScreenHeight;
//
//    private ListImageDirPopupWindow mListImageDirPopupWindow;
//
//    private Handler mHandler = new Handler() {
//        public void handleMessage(android.os.Message msg) {
//            mProgressDialog.dismiss();
//            // 为View绑定数据
//            data2View();
//            // 初始化展示文件夹的popupWindw
//            initListDirPopupWindw();
//        }
//    };
//
//    /**
//     * 为View绑定数据
//     */
//    private void data2View() {
//
//        if (mImgDir == null) {
//            Toast.makeText(this, "未扫描到图片", Toast.LENGTH_SHORT).show();
//            return;
//        }
////        if (mImgs==null || mImgs.size()==0) {
////            Toast.makeText(getApplicationContext(), "未扫描到图片", Toast.LENGTH_SHORT).show();
////            return;
////        }
//
//        List<File> files1 = Arrays.asList(mImgDir.listFiles(new FilenameFilter() {
//            @Override
//            public boolean accept(File dir, String filename) {
//
//                if (filename.endsWith(".jpg") || filename.endsWith(".png")
//                        || filename.endsWith(".jpeg"))
//                    return true;
//                return false;
//            }
//        }));
//
//
////        LogUtil.e("tagg", "files1==" + files1);
//
//        Collections.sort(files1, new FileComparator());
//
//        try {
//            mImgs.clear();
//            for (int i = 0; i < files1.size(); i++) {
//                mImgs.add(files1.get(i).getPath());
////                LogUtil.e("tagg", "图片路径:" + mImgs.get(i));
//            }
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
////        //TODO
////
////        mImgs = Arrays.asList(mImgDir.list());
////
////        for (int i = 0; i < mImgs.size(); i++) {
////            LogUtil.e("tagg", "图片路径:" + mImgs.get(i));
////        }
//
//
//        /**
//         * 可以看到文件夹的路径和图片的路径分开保存，极大的减少了内存的消耗；
//         */
//        mAdapter = new MyAdapter(this, mImgs,
//                R.layout.grid_item, null);
//        mGirdView.setAdapter(mAdapter);
////        mImageCount.setText(totalCount + "张");
//    }
//
//    /**
//     * 初始化展示文件夹的popupWindw
//     */
//    private void initListDirPopupWindw() {
//        mListImageDirPopupWindow = new ListImageDirPopupWindow(
//                LayoutParams.MATCH_PARENT, (int) (mScreenHeight * 0.7),
//                mImageFloders, LayoutInflater.from(getApplicationContext())
//                .inflate(R.layout.list_dir, null));
//
//        mListImageDirPopupWindow.setOnDismissListener(new OnDismissListener() {
//
//            @Override
//            public void onDismiss() {
//                // 设置背景颜色变暗
//                WindowManager.LayoutParams lp = getWindow().getAttributes();
//                lp.alpha = 1.0f;
//                getWindow().setAttributes(lp);
//            }
//        });
//        // 设置选择文件夹的回调
//        mListImageDirPopupWindow.setOnImageDirSelected(this);
//    }
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_choose_photo);
//        mApplication.addActivity(this);
//        DisplayMetrics outMetrics = new DisplayMetrics();
//        getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
//        mScreenHeight = outMetrics.heightPixels;
//
//        initView();
//        getImages();
//        initEvent();
//
//    }
//
//    @Override
//    public void widgetClick(View v) {
//    }
//
//    /**
//     * 利用ContentProvider扫描手机中的图片，此方法在运行在子线程中 完成图片的扫描，最终获得jpg最多的那个文件夹
//     */
//    private void getImages() {
//
//        if (!Environment.getExternalStorageState().equals(
//                Environment.MEDIA_MOUNTED)) {
//            Toast.makeText(this, "暂无外部存储", Toast.LENGTH_SHORT).show();
//            return;
//        }
//
//        // 显示进度条
//        mProgressDialog = ProgressDialog.show(this, null, "正在加载...");
//
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//
//                String firstImage = null;
//
//                Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
//                ContentResolver mContentResolver = ChoosePhotoActivity.this
//                        .getContentResolver();
//
//                // 只查询jpeg和png的图片
//                Cursor mCursor = mContentResolver.query(mImageUri, null,
//                        MediaStore.Images.Media.MIME_TYPE + "=? or "
//                                + MediaStore.Images.Media.MIME_TYPE + "=?",
//                        new String[]{"image/jpeg", "image/png"},
//                        MediaStore.Images.Media.DATE_MODIFIED);
//
////                Log.e("TAG", mCursor.getCount() + "");
//                while (mCursor.moveToNext()) {
//                    // 获取图片的路径
//                    path = mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DATA));
//
////                    Log.e("TAG", path);
//                    // 拿到第一张图片的路径
//                    if (firstImage == null)
//                        firstImage = path;
//                    // 获取该图片的父路径名
//                    File parentFile = new File(path).getParentFile();
//                    if (parentFile == null)
//                        continue;
//                    String dirPath = parentFile.getAbsolutePath();
//                    ImageFloder imageFloder = null;
//                    // 利用一个HashSet防止多次扫描同一个文件夹（不加这个判断，图片多起来还是相当恐怖的~~）
//                    if (mCacheDirPaths.contains(dirPath)) {
//                        continue;
//                    } else {
//                        mCacheDirPaths.add(dirPath);
//                        // 初始化imageFloder
//                        imageFloder = new ImageFloder();
//                        imageFloder.setDir(dirPath);
//                        imageFloder.setFirstImagePath(path);
//                    }
//
////                    if (parentFile== null) {
////                        continue;
////                    }
//
//                    int picSize = parentFile.list(new FilenameFilter() {
//                        @Override
//                        public boolean accept(File dir, String filename) {
//                            if (filename.endsWith(".jpg")
//                                    || filename.endsWith(".png")
//                                    || filename.endsWith(".jpeg"))
//                                return true;
//                            return false;
//                        }
//                    }).length;
//                    totalCount += picSize;
//
//                    imageFloder.setCount(picSize);
//                    mImageFloders.add(imageFloder);
//
//                    if (picSize > mPicsSize) {
//                        mPicsSize = picSize;
//                        mImgDir = parentFile;
//                    }
//                }
//                mCursor.close();
//
//                // 扫描完成，辅助的HashSet也就可以释放内存了
//                mCacheDirPaths = null;
//
//                // 通知Handler扫描图片完成
//                mHandler.sendEmptyMessage(0x110);
//
//            }
//        }).start();
//
//    }
//
//    /**
//     * 初始化View
//     */
//    private void initView() {
//        mGirdView = (GridView) findViewById(R.id.id_gridView);
//        mChooseDir = (TextView) findViewById(R.id.id_choose_dir);
//        mImageCount = (TextView) findViewById(R.id.id_total_count);
//
//        mBottomLy = (RelativeLayout) findViewById(R.id.id_bottom_ly);
//
//    }
//
//    private void initEvent() {
//        /**
//         * 为底部的布局设置点击事件，弹出popupWindow
//         */
//        mChooseDir.setOnClickListener(new OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                mListImageDirPopupWindow
//                        .setAnimationStyle(R.style.anim_popup_dir);
//                mListImageDirPopupWindow.showAsDropDown(mBottomLy, 0, 0);
//
//                // 设置背景颜色变暗
//                WindowManager.LayoutParams lp = getWindow().getAttributes();
//                lp.alpha = .3f;
//                getWindow().setAttributes(lp);
//            }
//        });
//
//        /**
//         * 完成
//         */
//        mImageCount.setOnClickListener(new OnClickListener() {
//            @Override
//            public void onClick(View v) {
//
//                Intent data = new Intent();
////                Bitmap addBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon_add);
////                BitmapDetail addBitmapDeail = new BitmapDetail(addBitmap, Constant.ADDBITMAPPATH);
////                MyAdapter.mSelectedImage.add(Constant.ADDBITMAPPATH);
////                if (mAdapter != null)//有照片
////                    data.putStringArrayListExtra("selectedPhotos", mAdapter.getData());
////                else//没有照片
////                    data.putStringArrayListExtra("selectedPhotos", null);
//
//                data.putStringArrayListExtra("selectedPhotos", mAdapter == null ? null : mAdapter.getData());
//                data.putExtra("path", path);
//                setResult(PHOTO_ALBUM_CODE, data);
//                finish();
//
//            }
//        });
//
//    }
//
//    @Override
//    public void selected(ImageFloder floder) {
//
//        mImgDir = new File(floder.getDir());
////        mImgs = Arrays.asList(mImgDir.list(new FilenameFilter() {
////            @Override
////            public boolean accept(File dir, String filename) {
////                if (filename.endsWith(".jpg") || filename.endsWith(".png")
////                        || filename.endsWith(".jpeg"))
////                    return true;
////                return false;
////            }
////        }));
//
//
////        String[] list = mImgDir.list(new FilenameFilter() {
////            @Override
////            public boolean accept(File dir, String filename) {
////                if (filename.endsWith(".jpg") || filename.endsWith(".png")
////                        || filename.endsWith(".jpeg"))
////                    return true;
////                return false;
////            }
////        });
//
////        File[] files = mImgDir.listFiles(new FilenameFilter() {
////            @Override
////            public boolean accept(File dir, String filename) {
////                if (filename.endsWith(".jpg") || filename.endsWith(".png")
////                        || filename.endsWith(".jpeg"))
////                    return true;
////                return false;
////            }
////        });
//
////        LogUtil.e("TAGG", "====selected====");
////
//        List<File> files1 = Arrays.asList(mImgDir.listFiles(new FilenameFilter() {
//            @Override
//            public boolean accept(File dir, String filename) {
//
//                if (filename.endsWith(".jpg") || filename.endsWith(".png")
//                        || filename.endsWith(".jpeg"))
//                    return true;
//                return false;
//            }
//        }));
//        Collections.sort(files1, new FileComparator());
//
//        try {
//            mImgs.clear();
//            for (int i = 0; i < files1.size(); i++) {
//                mImgs.add(files1.get(i).getPath());
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//        /**
//         * 可以看到文件夹的路径和图片的路径分开保存，极大的减少了内存的消耗；
//         */
//        mAdapter = new MyAdapter(getApplicationContext(), mImgs,
//                R.layout.grid_item, null);
////        mAdapter = new MyAdapter(getApplicationContext(), mImgs,
////                R.layout.grid_item, mImgDir.getAbsolutePath());
//        mGirdView.setAdapter(mAdapter);
//        // mAdapter.notifyDataSetChanged();
////        mImageCount.setText(floder.getCount() + "张");
//        mChooseDir.setText(floder.getName());
//        mListImageDirPopupWindow.dismiss();
//
//    }
//
//    public void onResume() {
//        super.onResume();
////        MobclickAgent.onResume(this);       //统计时长
//    }
//
//    public void onPause() {
//        super.onPause();
////        MobclickAgent.onPause(this);
//    }
//
//
//    private class FileComparator implements Comparator<File> {
//
//        @Override
//        public int compare(File lhs, File rhs) {
//            if (lhs.lastModified() < rhs.lastModified()) {
//                return 1;//最后修改的照片在前
//            } else {
//                return -1;
//            }
//        }
//
//    }
//
////    //返回键按下的时候
////    @Override
////    public void onBackPressed() {
////        super.onBackPressed();
////
//////        EventBus.getDefault().post(0);
////
//////        setResult(101);
////
////        finish();
////    }
//}
